package properties

import (
	"MoSkeleton/framework/core/config/properties"
	"MoSkeleton/framework/core/config/properties_db"
	"MoSkeleton/framework/core/config/properties_gin"
	"MoSkeleton/framework/core/config/properties_redis"
)

type App struct {
	App appCoat `mapstructure:"app" json:"app" yaml:"app"`
}

type appCoat struct {
	Gin       properties_gin.GinProperty   `mapstructure:"gin" json:"gin" yaml:"gin"`
	Captcha   CaptchaProperty              `mapstructure:"captcha" json:"captcha" yaml:"captcha"`
	Security  properties.SecurityProperty  `mapstructure:"security" json:"security" yaml:"security"`
	Snowflake properties.SnowflakeProperty `mapstructure:"snowflake" json:"snowflake" yaml:"snowflake"`
}

type AppStorage struct {
	App appStorageCoat `mapstructure:"app" json:"app" yaml:"app"`
}

type appStorageCoat struct {
	PersistentDb  properties_db.PersistentDb     `mapstructure:"persistent" json:"persistent" yaml:"persistent"`
	RedisProperty properties_redis.RedisProperty `mapstructure:"redis" json:"redis" yaml:"redis"`
}
